package pmsjc.dpi.psaudavel;

import java.text.SimpleDateFormat;

import pmsjc.dpi.psaudavel.R;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Paint;
import android.net.ConnectivityManager;
import android.net.ParseException;
import android.os.Bundle;
import android.text.InputType;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class homeActivity extends Activity {

	Dialog dialoging ;
	public  BuscaWS buscaCPFClasse;
	
	
	
	public void atualizaNome(){
		TextView txtnomePessoa = (TextView) findViewById(R.id.txtNomeDadosPessoais);
		txtnomePessoa.setText(PSaudavelActivity.pessoa.getPessoa_nome());
		
		TextView txtalterar = (TextView) findViewById(R.id.txtalterarDadosPessoais);
		txtalterar.setTextColor(Color.BLUE);
			
		txtnomePessoa.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				dialogo();	
			}
		});
		
		txtalterar.setPaintFlags(txtalterar.getPaintFlags() |   Paint.UNDERLINE_TEXT_FLAG);
		txtalterar.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				dialogo();	
			}
		});
		
		ImageView img = (ImageView) findViewById(R.id.imgDadosPessoais);
		img.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
					dialogo();	
					
			}
		});
		
	}
	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.i("Resume","Pessoa: " + PSaudavelActivity.pessoa.getPessoa_nome());
		 setContentView(R.layout.home);
		atualizaNome();
	}
	
	public void PreencheCampos(){

		stru_pessoa pessoa = new stru_pessoa();
		pessoa = PSaudavelActivity.pessoa;
		
		Log.e("Pessoa",pessoa.toString());
		Spinner spinnerLocTrab = (Spinner) dialoging.findViewById(R.id.local);
		EditText lblTelefone = (EditText) dialoging.findViewById(R.id.telefoneres);	
		Spinner spinnerEstCiv = (Spinner) dialoging.findViewById(R.id.estciv);
		Spinner spinnerEsc = (Spinner) dialoging.findViewById(R.id.escol);
		EditText lblNome = (EditText)dialoging.findViewById(R.id.nome);
		EditText lblMatricula = (EditText)dialoging.findViewById(R.id.matricula);
		EditText lblDtNasc = (EditText)dialoging.findViewById(R.id.dtnasc);
		EditText lblCargo = (EditText)dialoging.findViewById(R.id.cargo);
		EditText lblEmail = (EditText)dialoging.findViewById(R.id.email);
		EditText lblDDDCel = (EditText)dialoging.findViewById(R.id.dddcelular);
		EditText lblCelular = (EditText)dialoging.findViewById(R.id.celular);
		RadioGroup rgSexo = (RadioGroup) dialoging.findViewById(R.id.sexo);    	
		RadioButton rbtF = (RadioButton) dialoging.findViewById(R.id.feminino);  
		RadioButton rbtM = (RadioButton) dialoging.findViewById(R.id.masculino);  
		CheckBox chksms = (CheckBox) dialoging.findViewById(R.id.chkSMS);
		CheckBox chkspam = (CheckBox) dialoging.findViewById(R.id.chkSPAM);
		Spinner spinnerTipo = (Spinner) dialoging.findViewById(R.id.tipoPrograma);

		ArrayAdapter<CharSequence> adapterLoc = ArrayAdapter.createFromResource(
				this, R.array.local_trabalho, android.R.layout.simple_spinner_item);
		adapterLoc.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinnerLocTrab.setAdapter(adapterLoc);

		ArrayAdapter<CharSequence> adapterEstCiv = ArrayAdapter.createFromResource(
				this, R.array.estado_civil, android.R.layout.simple_spinner_item);
		adapterEstCiv.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinnerEstCiv.setAdapter(adapterEstCiv);

		ArrayAdapter<CharSequence> adapterEsc = ArrayAdapter.createFromResource(
				this, R.array.escolaridade, android.R.layout.simple_spinner_item);
		adapterEsc.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinnerEsc.setAdapter(adapterEsc);

		ArrayAdapter<CharSequence> adapterTipo = ArrayAdapter.createFromResource(
				this, R.array.tipo_programa, android.R.layout.simple_spinner_item);
		adapterTipo.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinnerTipo.setAdapter(adapterTipo);
	

				lblTelefone.setText(pessoa.getPessoa_ramal());
				lblNome.setText(pessoa.getPessoa_nome());
				lblMatricula.setText(pessoa.getPessoa_matricula());    	        	
				lblDtNasc.setText(pessoa.getPessoa_data_nascimento());
				lblCargo.setText(pessoa.getPessoa_cargo());
				lblEmail.setText(pessoa.getPessoa_email());
				lblDDDCel.setText(pessoa.getPessoa_ddd_celular());
				lblCelular.setText(pessoa.getPessoa_celular());

				if (pessoa.getPessoa_recebe_sms() != null && (pessoa.getPessoa_recebe_sms().equals("S"))){
					chksms.setChecked(true);
				}else{
					chksms.setChecked(false);
				}

				if (pessoa.getPessoa_recebe_email() != null && (pessoa.getPessoa_recebe_email().equals("S"))){
					chkspam.setChecked(true);
				}else {
					chkspam.setChecked(false);
				}


				if (pessoa.getPessoa_sexo().contains("F")){
					rgSexo.check(R.id.feminino);
				}else if (pessoa.getPessoa_sexo().contains("M")){
					rgSexo.check(R.id.masculino);
				}


				EnableCampo(lblNome, false);
				EnableCampo(lblMatricula, false);   	        	
				EnableCampo(lblDtNasc, false);
				EnableCampo(lblCargo, false);
				spinnerLocTrab.setEnabled(false);
				spinnerEstCiv.setEnabled(false);
				spinnerEsc.setEnabled(false);

				if (pessoa.getPessoa_origem().contains("SIAS")){
					EnableCampo(lblDDDCel, false);
					EnableCampo(lblCelular, false);
					chksms.setEnabled(false);
					rgSexo.setEnabled(false);
					rbtF.setEnabled(false);
					rbtM.setEnabled(false);
					chkspam.setEnabled(false);
				}

				if (pessoa.getPessoa_origem().contains("OUTROS")){
					chksms.setEnabled(false);
					chkspam.setEnabled(false);
				}

				if (pessoa.getPessoa_empr_razaosocial() != null){
					Integer empresa =  Integer.valueOf(pessoa.getPessoa_codigo_empresa());


					if (empresa== 1){
						spinnerLocTrab.setSelection(1);
					}else if (empresa== 2){
						spinnerLocTrab.setSelection(2);
					}else if (empresa== 3){
						spinnerLocTrab.setSelection(3);
					}else if (empresa== 4){
						spinnerLocTrab.setSelection(4);
					}else if (empresa== 9){
						spinnerLocTrab.setSelection(5);
					}else if (empresa== 86){ 
						spinnerLocTrab.setSelection(6);
					}else if (empresa== 293){ 
						spinnerLocTrab.setSelection(7);
					}else if (empresa== 294){ 
						spinnerLocTrab.setSelection(8);
					}else if (empresa== 295){ 
						spinnerLocTrab.setSelection(9);
					}
				}

				if (pessoa.getPessoa_escolaridade() != null){
					Integer escol =  Integer.valueOf(pessoa.getPessoa_escolaridade());   	        		
					spinnerEsc.setSelection(escol);   	   	       
				}
				
				if (pessoa.getpessoa_tppa_codigo() != null){
					Integer programa =  Integer.valueOf(pessoa.getpessoa_tppa_codigo());   	        		
					spinnerTipo.setSelection(programa - 1 ); // 1-ROTINA | 2-MEDIDA CERTA   	   	       
				}

				if (pessoa.getPessoa_estcivil() != null){

					Integer estciv =  Integer.valueOf(pessoa.getPessoa_estcivil());   	        		
					spinnerEstCiv.setSelection(estciv);
				}
			
	
	}

	public boolean dataValida(String s){
		SimpleDateFormat df = new SimpleDateFormat ("dd/MM/yyyy");  
		df.setLenient (false); // aqui o pulo do gato  
		try {  
			try {
				df.parse (s);
			} catch (java.text.ParseException e) {				
				e.printStackTrace();
				return false;
			}  
			// data v‡lida  
			return true;
		} catch (ParseException ex) {  
			// data inv‡lida  
			return false;
		}  
	}

	
	public void EnableCampo(EditText o, boolean enable){

		if (enable == false){
			o.setInputType(InputType.TYPE_NULL);			
		}else{
			o.setInputType(InputType.TYPE_CLASS_NUMBER);	
			o.setFocusable(enable);
		}		
		o.setEnabled(enable);       
	}
	
	public void AtualizaCampos(){
		EditText lblcpf = (EditText)findViewById(R.id.txt_cpf);
		EditText lblEmail = (EditText)dialoging.findViewById(R.id.email);
		EditText lblDDDCel = (EditText)dialoging.findViewById(R.id.dddcelular);
		EditText lblCelular = (EditText)dialoging.findViewById(R.id.celular);
		CheckBox chksms = (CheckBox) dialoging.findViewById(R.id.chkSMS);
		CheckBox chkspam = (CheckBox) dialoging.findViewById(R.id.chkSPAM);
		RadioGroup rgSexo = (RadioGroup) dialoging.findViewById(R.id.sexo);    
		EditText lblTelefone = (EditText) dialoging.findViewById(R.id.telefoneres);		
		EditText lblDtNasc = (EditText) dialoging.findViewById(R.id.dtnasc);
		EditText lblNome = (EditText) dialoging.findViewById(R.id.nome);
		Spinner spinnerLocTrab = (Spinner) dialoging.findViewById(R.id.local);
		Spinner spinnerEstCiv = (Spinner) dialoging.findViewById(R.id.estciv);
		Spinner spinnerEsc = (Spinner) dialoging.findViewById(R.id.escol);
		Spinner spinnerTipo = (Spinner) dialoging.findViewById(R.id.tipoPrograma);
	
		PSaudavelActivity.pessoa.setPessoa_nome(lblNome.getText().toString());
		PSaudavelActivity.pessoa.setPessoa_data_nascimento(lblDtNasc.getText().toString());
		PSaudavelActivity.pessoa.setPessoa_ramal(lblTelefone.getText().toString());
		PSaudavelActivity.pessoa.setPessoa_foneresnumero(lblTelefone.getText().toString());
		PSaudavelActivity.pessoa.setPessoa_celular(lblCelular.getText().toString());
		PSaudavelActivity.pessoa.setPessoa_ddd_celular(lblDDDCel.getText().toString());
		PSaudavelActivity.pessoa.setPessoa_email(lblEmail.getText().toString());			

		int programa = spinnerTipo.getSelectedItemPosition() + 1; // 1-ROTINA | 2-MEDIDA CERTA 		
		PSaudavelActivity.pessoa.setpessoa_tppa_codigo(String.valueOf(programa));
		
		PSaudavelActivity.pessoa.setPessoa_escolaridade(String.valueOf(spinnerEsc.getSelectedItemPosition()));
		PSaudavelActivity.pessoa.setPessoa_estcivil(String.valueOf(spinnerEstCiv.getSelectedItemPosition()));

		//empresa
		int empresa = spinnerLocTrab.getSelectedItemPosition();
		if (empresa== 1){
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("1");
		}else if (empresa== 2){
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("2");
		}else if (empresa== 3){
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("3");
		}else if (empresa== 4){
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("4");
		}else if (empresa== 5){
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("9");
		}else if (empresa== 6){ 
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("86");
		}else if (empresa== 7){ 
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("293");
		}else if (empresa== 8){ 
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("294");
		}else if (empresa== 9){ 
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("295");
		}else{
			PSaudavelActivity.pessoa.setPessoa_empr_razaosocial("0");
		}

		if (chksms.isChecked()){
			PSaudavelActivity.pessoa.setPessoa_recebe_sms("S");
		}else{
			PSaudavelActivity.pessoa.setPessoa_recebe_sms("N");
		}

		if (chkspam.isChecked()){
			PSaudavelActivity.pessoa.setPessoa_recebe_email("S");
		}else{
			PSaudavelActivity.pessoa.setPessoa_recebe_email("N");
		}

		int id = rgSexo.getCheckedRadioButtonId();
		if (id == R.id.feminino){
			PSaudavelActivity.pessoa.setPessoa_sexo("F");
		}
		else{
			if (id == R.id.masculino){
				PSaudavelActivity.pessoa.setPessoa_sexo("M");
			}else{
				PSaudavelActivity.pessoa.setPessoa_sexo(null);
			}
		}
	}

	private boolean TemConexao() { 
		boolean lblnRet = false;
		try
		{
			ConnectivityManager cm = (ConnectivityManager)
					getSystemService(Context.CONNECTIVITY_SERVICE); 
			if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isAvailable() && cm.getActiveNetworkInfo().isConnected()) { 
				lblnRet = true; 
			} else { 
				lblnRet = false; 
			}
		}catch (Exception e) {
			Log.e("Erro... Conexao",e.getMessage());
		}
		return lblnRet;
	}

	
	public void dialogo(){
		Log.i("Home - Dialogo pessoa:", PSaudavelActivity.pessoa.toString());
		dialoging = new Dialog(homeActivity.this);

		dialoging.setContentView(R.layout.dados_pessoais);

		dialoging.setTitle("Preencha todos os Dados Pessoais");
		PreencheCampos();
		dialoging.show();

		Button btnSalvar = (Button) dialoging.findViewById(R.id.btnsalvarDadosPessoais);
		Button btnCancelar = (Button) dialoging.findViewById(R.id.btncancelarDadosPessoais);

		btnCancelar.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
			//	inicio(); ???????
				dialoging.dismiss();

			}
		});

		btnSalvar.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {

				AtualizaCampos();        

				if (PSaudavelActivity.pessoa.dadosCompletos()){ // Todos os campos est‹o 49827489186... criaTabs				

					if (dataValida(PSaudavelActivity.pessoa.getPessoa_data_nascimento())){

					//Atualiza	
						
							if (TemConexao()){
								buscaCPFClasse = new BuscaWS();   	
								String pes = buscaCPFClasse.AtualizaPessoa(PSaudavelActivity.pessoa);
								if (pes.contains("N")){
									Toast toast= Toast.makeText(getApplicationContext(), "Erro ao atualizar dados pessoais!", Toast.LENGTH_SHORT);  							
									toast.setGravity(Gravity.TOP, 0, 70);
									toast.show();
								}else{
									atualizaNome();
								}
							}else{
								Toast toast= Toast.makeText(getApplicationContext(), "Você não possui rede para acesso ao SGRH!", Toast.LENGTH_LONG);  							
								toast.setGravity(Gravity.TOP, 0, 70);
								toast.show();	
								//EnableCampo(label, false); 
							}
						

						dialoging.dismiss();
						//dialoging.setTitle("nao desligou");
					}else{
						Toast toast= Toast.makeText(getApplicationContext(), "Data de Nascimento inválida!", Toast.LENGTH_SHORT);  							
						toast.setGravity(Gravity.TOP, 0, 70);
						toast.show();
					}
				}else{
					Toast toast= Toast.makeText(getApplicationContext(), "Preencha todos os dados!", Toast.LENGTH_SHORT);  							
					toast.setGravity(Gravity.TOP, 0, 70);
					toast.show();

				}
			}

		});
	}
}
